// PLC配置加载和直接读取测试脚本
const plcService = require('../client/src/services/plcService');

async function testPLCConfigAndDirectRead() {
  console.log('开始测试PLC配置加载和直接读取功能...');
  
  try {
    // 测试加载PLC配置
    console.log('\n1. 测试加载PLC配置:');
    const config = await plcService.loadConfig();
    console.log('PLC配置加载成功:', config);
    
    // 检查配置中的变量
    if (config.variables && config.variables.length > 0) {
      console.log('\n2. 配置中的变量列表:');
      config.variables.forEach((variable, index) => {
        console.log(`  ${index + 1}. 地址: ${variable.address}, 描述: ${variable.description}, 类型: ${variable.type}`);
      });
      
      // 测试直接读取配置中的变量（无权限限制）
      console.log('\n3. 测试直接读取配置中的变量（无权限限制）:');
      const variableAddresses = config.variables.map(v => v.address);
      const readResult = await plcService.readVariablesDirectUnrestricted(variableAddresses);
      console.log('直接读取结果:', readResult);
    } else {
      console.log('\n2. 配置中没有变量');
      
      // 测试读取一些默认变量
      console.log('\n3. 测试直接读取默认变量（无权限限制）:');
      const defaultVariables = ['DB1,W0.0', 'DB1,W2.0', 'DB1,W4.0', 'DB1,W6.0'];
      const readResult = await plcService.readVariablesDirectUnrestricted(defaultVariables);
      console.log('直接读取结果:', readResult);
    }
    
    console.log('\n✅ 所有测试完成!');
  } catch (error) {
    console.error('❌ 测试过程中出现错误:', error);
  }
}

// 运行测试
testPLCConfigAndDirectRead();